So rufen Sie Daten in WordPress mit MySQLi oder $ wpdb
3 Antworten
- Stimmen
-
- 2016-07-25
Zum Abrufen von Daten aus der Datenbanktabelle
<?php $results = $wpdb->get_results( "SELECT * FROM $table_name"); // Query to fetch data from database table and storing in $results if(!empty($results)) // Checking if $results have some values or not { echo "<table width='100%' border='0'>"; // Adding <table> and <tbody> tag outside foreach loop so that it wont create again and again echo "<tbody>"; foreach($results as $row){ $userip = $row->user_ip; //putting the user_ip field value in variable to use it later in update query echo "<tr>"; // Adding rows of table inside foreach loop echo "<th>ID</th>" . "<td>" . $row->id . "</td>"; echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; echo "<tr>"; echo "<th>User IP</th>" . "<td>" . $row->user_ip . "</td>"; //fetching data from user_ip field echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; echo "<tr>"; echo "<th>Post ID</th>" . "<td>" . $row->post_id . "</td>"; echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; echo "<tr>"; echo "<th>Time</th>" . "<td>" . $row->time . "</td>"; echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; } echo "</tbody>"; echo "</table>"; } ?>
NOTE: Change your data fetching format according to your need (table structure)
Zum Aktualisieren des Zeitfeldsbei Bedingung
<?php if($userip==245.356.134.22){ //Checking if user_ip field have following value $wpdb->update( $table_name, array( 'time' => 'YOUR NEW TIME' // Entring the new value for time field ), array('%d') // Specify the datatype of time field ); } ?>
Update
Wenn Sie überprüfenmöchten,ob die IP,die Siein die Datenbankeinfügenmöchten,bereits vorhandenist odernicht,überprüfen Sie sie wiefolgt
<?php global $wpdb,$ip; $results = $wpdb->get_results( "SELECT user_ip FROM $table_name"); //query to fetch record only from user_ip field $new_ip = 245.356.134.22; //New Ip address storing in variable if(!empty($results)) { foreach($results as $row){ $old_ip = $row->user_ip; // putting the value of user_ip field in variable if($new_ip==$old_ip){ // comparing new ip address with old ip addresses $ip = 'Already Exist'; // if ip already exist in database then assigning some string to variable } } } if($ip = 'Already Exist'){ // Checking if variable have some string (It has some string only when if IP already exist in database as checked in if condition by comparing old ips with new ip) //Insert query according to Ip already exist in database }else{ //Insert query according to Ip doesn't exist in database } ?>
To fetch data from database table
<?php $results = $wpdb->get_results( "SELECT * FROM $table_name"); // Query to fetch data from database table and storing in $results if(!empty($results)) // Checking if $results have some values or not { echo "<table width='100%' border='0'>"; // Adding <table> and <tbody> tag outside foreach loop so that it wont create again and again echo "<tbody>"; foreach($results as $row){ $userip = $row->user_ip; //putting the user_ip field value in variable to use it later in update query echo "<tr>"; // Adding rows of table inside foreach loop echo "<th>ID</th>" . "<td>" . $row->id . "</td>"; echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; echo "<tr>"; echo "<th>User IP</th>" . "<td>" . $row->user_ip . "</td>"; //fetching data from user_ip field echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; echo "<tr>"; echo "<th>Post ID</th>" . "<td>" . $row->post_id . "</td>"; echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; echo "<tr>"; echo "<th>Time</th>" . "<td>" . $row->time . "</td>"; echo "</tr>"; echo "<td colspan='2'><hr size='1'></td>"; } echo "</tbody>"; echo "</table>"; } ?>
NOTE: Change your data fetching format according to your need (table structure)
To update time field on if condition
<?php if($userip==245.356.134.22){ //Checking if user_ip field have following value $wpdb->update( $table_name, array( 'time' => 'YOUR NEW TIME' // Entring the new value for time field ), array('%d') // Specify the datatype of time field ); } ?>
Update
If you want to check if the IP you are going to insert in database is already exist or not then check it like this
<?php global $wpdb,$ip; $results = $wpdb->get_results( "SELECT user_ip FROM $table_name"); //query to fetch record only from user_ip field $new_ip = 245.356.134.22; //New Ip address storing in variable if(!empty($results)) { foreach($results as $row){ $old_ip = $row->user_ip; // putting the value of user_ip field in variable if($new_ip==$old_ip){ // comparing new ip address with old ip addresses $ip = 'Already Exist'; // if ip already exist in database then assigning some string to variable } } } if($ip = 'Already Exist'){ // Checking if variable have some string (It has some string only when if IP already exist in database as checked in if condition by comparing old ips with new ip) //Insert query according to Ip already exist in database }else{ //Insert query according to Ip doesn't exist in database } ?>
-
Dasistgroßartig ... können Siemir sagen,wieich überprüfen kann,ob sich die IP-Adressebereitsin der Datenbankbefindet odernicht?Wenn sich die IP-Adressebereitsin der Datenbankbefindet,führen Sie Programm 1 aus,und wenn diesnicht der Fallist,führen Sie Programm 2 aus. Ich weiß,dass wirin der Abfrage "WHERE" verwendenmüssen,aberich weißnicht,wie heißesist,umes zu verwendenThat's great... can you tell me how I can check if the `ip` address is already in database or not? If Ip address already in database then run program 1 and if it's not, then run program 2. I know we need to use `WHERE` in query but I dont know hot to use it
- 0
- 2016-07-25
- Ramesh Pardhi
-
Hast du die aktualisierte Antwortgesehen?Have you seen the updated answer?
- 0
- 2016-07-26
- Rishabh
-
Ich habees versucht undesfunktioniert.Aberim Moment werden alle Datenmit "foreach" aus der Datenbank abgerufen und dann unser Code kompiliert,um zu überprüfen,ob die IP-Adresseidentischist odernicht.Gibteseine andere Möglichkeit,die IP-Adresse direktmithilfeeiner Datenbankabfrage zu überprüfen?I tried this and its working. But right now its fetching all the data from database using `foreach`, then its compiling our code to check if the ip is same or not. Is there any other way to get that ip get checked directly using database query?
- 0
- 2016-07-26
- Ramesh Pardhi
-
Antwort wurde aktualisiert!Überprüfen Sie,obes dasist,was Siebrauchen.Answer has been updated! Check if its what you need.
- 0
- 2016-07-27
- Rishabh
-
Rishabh Danke,dass dumir hilfst ... Nureine letzte Frage.Kannicheine Abfrage wie `SELECT user_ip FROM $table_name WHERE` user_ip`=$ username` verwenden?Wirdesfunktionieren?Vielen Dankfür Ihre Antwort und helfen Sie Rishabh.Rishabh Thank you to help me... Just one last question. Can I use query like `SELECT user_ip FROM $table_name WHERE `user_ip` = $username`. Will it work? Thank you for your answer and help Rishabh.
- 0
- 2016-07-27
- Ramesh Pardhi
-
Ja,Sie könnenes so verwenden` $ results=$ wpdb->get_results ("SELECT user_ip FROM $table_name WHERE user_ip='$ username'"); `Yes you can use it like this` $results = $wpdb->get_results( "SELECT user_ip FROM $table_name WHERE user_ip = '$username' ");`
- 1
- 2016-07-27
- Rishabh
-
- 2016-07-27
//For fetching data use global $wpdb; $results = $wpdb->get_results("SLECT * FROM table_name"); //and for update use below code $wpdb->update( $table_name, array( 'time' => time(), // string ), array( 'user_ip' => '245.356.134.22' ), array('%s'), array( '%d' ) );
//For fetching data use global $wpdb; $results = $wpdb->get_results("SLECT * FROM table_name"); //and for update use below code $wpdb->update( $table_name, array( 'time' => time(), // string ), array( 'user_ip' => '245.356.134.22' ), array('%s'), array( '%d' ) );
-
Bittefügen Sieeinige Kommentare vor Ihren Codezeilen hinzu,damit der Betrachter verstehen kann,was Ihr Codetut und wie.Please add some comments in front of you code lines so that viewer can understand what you code does and how.
- 0
- 2016-07-27
- Rishabh
-
@Rishabh keine Notwendigkeitfürmehr Kommentar,daichentsprechenden Kommentar vor dem Codeeingefügt habe.@Rishabh no need for more comment as i have inserted appropriate comment before the code.
- 0
- 2016-07-27
- Ganesh
-
- 2016-07-25
Siegeben in Ihrer Frage MYSQLi an,kennzeichnen und verweisenjedochin Ihrer Frage auf MySQL. Wenn Sie MySQL verwenden,funktioniert Folgendesfür Sie:
Diesist ziemlicheinfach,und da Sie dieinsert-Anweisungbereitserstellt haben,können Sie updateeinfach wiefolgt verwenden:
$wpdb->update($table_name , array('user_ip' => $user_ip, 'post_id' =>$postID, 'time' => $visittime),array('%s','%d', '%d') );
Dannmüssten Sienurnoch die Wertein Ihrer Abfragefestlegen,welche Datenin der Datenbank Sie ändernmöchten. Beispielefinden Sie hier: https://codex.wordpress.org/Class_Reference/wpdb#UPDATE_rows
Zum Abrufen aller Daten können Sie Folgendes verwenden:
$results = $wpdb->get_results("SLECT * FROM table_name");
Sie könnenbeliebige WHERE-Parameter hinzufügen oder wieeine Standard-SQL-Abfrageanweisung sortieren. Sie können sich dannmit einerforeach-Schleife durchschleifen und dann Ihre abgerufenen Daten wiedergeben.
You indicate MYSQLi in your question, but label and refer to MySQL in your question. If you are using MySQL the following will work for you:
This is fairly simple, and given the fact that you already have the insert statement constructed, you can just use update like so:
$wpdb->update($table_name , array('user_ip' => $user_ip, 'post_id' =>$postID, 'time' => $visittime),array('%s','%d', '%d') );
Then all you would have to do is set the values in your query as to what data in the DB you want to change. You can find examples here: https://codex.wordpress.org/Class_Reference/wpdb#UPDATE_rows
As for fetching all of the data you could use the follow:
$results = $wpdb->get_results("SLECT * FROM table_name");
You can add any WHERE parameters to it or sort it just like and standard SQL query statement. You can just then loop through is with a foreach loop and then you would just echo out your data you retrieved.
-
Vielen Dankfür die Antwort @hosker.Aberich wollte heiß wissen,um diese "$ Ergebnisse" zu holenThank you for reply @hosker. But I was wanted to know hot to fetch that `$results`
- 0
- 2016-07-25
- Ramesh Pardhi
-
Ichbin bereit zu helfen,im Gegensatz zu @rishabh,dernett genug war,Ihneneine vollständige Antwortmit Codierung zugeben. Ich habe Ihnennur die Grundlagengegeben,wie Sie dastun,wonach Siegefragt haben.Eineeinfache Google-Suche undein Blick durch den Wordpress-Codex hätten Ihr Problem lösen können.Diese Foren sind hier als Ressource undichbenutze sie,aberich würdeniemalserwarten,dassjemand siefürmich codiert.Sie hattenbereits die Hälfte davoneingestellt,waren aber zufaul,umes herauszufinden und den Code selbst zu schreiben.Sie lernennie,objemand allesfür Sietut.I am willing to help, unlike @rishabh, who was nice enough to give you a complete answer with coding, I was just giving you the basics of how to do what you were asking for. A simple google search and a look through the Wordpress Codex could have solved your problem. These forums are here as a resource, and I use them, but I would never expect someone to code it for me. You had half of it already set, but were too lazy to figure it out and write the code yourself. You never learn if someone does it all for you.
- 1
- 2016-07-25
- hosker
-
@ Hosker dubist richtig Kumpel!Selbststudiumistein Muss ... Jetztistmir klar,dassichnicht die vollständige Antwort hättegeben sollen.@ hosker you are right buddy! Self study is must... Now I realize I shouldn't have given the complete answer.
- 0
- 2016-07-26
- Rishabh
-
Hmm!Sie haben Recht,Leute.Wasich hiergefragt habe,ist als Referenz.Wasich versuche zutun,istetwas anderes.Ichmöchteeinige Dinge wissen,umesmit meinem Plugin zu verwenden.Ichmöchte wissen,wie diese Abfragen verwendet werden,um diegewünschte IP anzuzeigen,ohne alle Daten aus der Datenbank abzurufen.Ichmöchteeine Abfrage,dienach dergewünschten IP sucht und diese dann anzeigt.Wasist,wennich 30000 IPs habe?Es werden alle 30000 IPsmit "foreach" abgerufen.Dasistnicht richtig!Deshalbbraucheich deine Hilfe.Hmm! you are right guys. what I asked here is for my reference. What I am trying to do is something different. I want to know some things to use it with my plugin. What I want to know is how to use these queries to show the IP I want without fetching all the data from database. I want a query which checks for the IP I want and then displays it. What if I have 30000 IPs? It will fetch all the 30000 IPs using `foreach`. That's not right! Thats why I need your help.
- 0
- 2016-07-26
- Ramesh Pardhi
Ich habeeine benutzerdefinierte Tabelle wie diese:
useraw
Ichfüge Datenmit
in die TabelleeinIch habe vier Zeilenmit diesem Codeeingefügt:
Ichmöchte lernen,wieman MySQL-Abfragenin WordPress verwendet. Hier sindmeine Fragen:
time
ändernmöchte,wobeiuser_ip = 245.356.134.22
Bitte lassen Siemich wissen,obichetwas lernenmuss.
Danke