Skip to content
Extraits de code Groupes Projets
Valider d29e9ea3 rédigé par esj's avatar esj
Parcourir les fichiers

Tâche #209: pas d'index numérique dans un tableau construit par...

Tâche #209: pas d'index numérique dans un tableau construit par spip_fetch_array. Remarque: une grosse partie des fichiers admin_*.php devra migre dans base/db_mysql, car elles sont très spécifiques à Mysql
parent 5b377420
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -293,6 +293,10 @@ function spip_release_lock($nom) { ...@@ -293,6 +293,10 @@ function spip_release_lock($nom) {
spip_query("SELECT RELEASE_LOCK('$nom')"); spip_query("SELECT RELEASE_LOCK('$nom')");
} }
function spip_mysql_version() {
$row = spip_fetch_array(spip_query("SELECT version() AS n"));
return ($row['n']);
}
// //
// IN (...) est limite a 255 elements, d'ou cette fonction assistante // IN (...) est limite a 255 elements, d'ou cette fonction assistante
......
...@@ -26,22 +26,21 @@ include_spip('inc/admin'); ...@@ -26,22 +26,21 @@ include_spip('inc/admin');
include_spip('inc/texte'); include_spip('inc/texte');
include_spip('inc/minipres'); include_spip('inc/minipres');
function verifier_base() { function verifier_base() {
if (! $res1= spip_query("SHOW TABLES")) $res1= spip_query("SHOW TABLES");
return false; if (!$res1) return false;
$res = ""; $res = "";
while ($tab = spip_fetch_array($res1)) { while ($tab = spip_fetch_array($res1)) {
$res .= "<p><b>".$tab[0]."</b> "; $res .= "<p><b>".$tab[0]."</b> ";
if (!($result_repair = spip_query("REPAIR TABLE ".$tab[0]))) $result_repair = spip_query("REPAIR TABLE ".$tab[0]);
return false; if (!$result_repair) return false;
if (!($result = spip_query("SELECT COUNT(*) FROM ".$tab[0]))) $result = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM ".$tab[0]));
return false; if (!$result) return false;
list($count) = spip_fetch_array($result); $count = $result['n'];
if ($count>1) if ($count>1)
$res .= "("._T('texte_compte_elements', array('count' => $count)).")\n"; $res .= "("._T('texte_compte_elements', array('count' => $count)).")\n";
else if ($count==1) else if ($count==1)
...@@ -64,35 +63,30 @@ function verifier_base() { ...@@ -64,35 +63,30 @@ function verifier_base() {
function exec_admin_repair_dist() function exec_admin_repair_dist()
{ {
$version_mysql = spip_mysql_version();
// verifier version MySQL if (!$version_mysql)
if (! $res1= spip_query("SELECT version()")) $message = _T('avis_erreur_connexion_mysql');
$message = _T('avis_erreur_connexion_mysql');
else {
$tab = spip_fetch_array($res1);
$version_mysql = $tab[0];
if ($version_mysql < '3.23.14')
$message = _T('avis_version_mysql', array('version_mysql' => $version_mysql));
else { else {
$message = _T('texte_requetes_echouent'); if ($version_mysql < '3.23.14')
$ok = true; $message = _T('avis_version_mysql', array('version_mysql' => $version_mysql));
else {
$message = _T('texte_requetes_echouent');
$ok = true;
}
} }
}
$action = _T('texte_tenter_reparation'); $action = _T('texte_tenter_reparation');
if ($ok) { if ($ok) {
debut_admin(generer_url_post_ecrire("admin_repair"), $action, $message); debut_admin(generer_url_post_ecrire("admin_repair"), $action, $message);
if (! $res = verifier_base())
$res = "<br><br><font color='red'><b><tt>"._T('avis_erreur_mysql').' '.spip_sql_errno().': '.spip_sql_error() ."</tt></b></font><br /><br /><br />\n";
fin_admin($action);
minipres(_T('texte_tentative_recuperation'), $res);
}
else {
minipres(_T('titre_reparation'), "<p>$message</p>");
}
if (! $res = verifier_base())
$res = "<br><br><font color='red'><b><tt>"._T('avis_erreur_mysql').' '.spip_sql_errno().': '.spip_sql_error() ."</tt></b></font><br /><br /><br />\n";
fin_admin($action);
minipres(_T('texte_tentative_recuperation'), $res);
}
else {
minipres(_T('titre_reparation'), "<p>$message</p>");
}
} }
?> ?>
...@@ -116,8 +116,8 @@ echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=8 WIDTH=\"100%\">", ...@@ -116,8 +116,8 @@ echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=8 WIDTH=\"100%\">",
// //
if ($options == "avancees") { if ($options == "avancees") {
$res = spip_query("SELECT version()"); $res = spip_mysql_version();
if (($row = spip_fetch_array($res)) AND ($row[0] >= '3.23.14')) { if ($res >= '3.23.14') {
echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=8 WIDTH=\"100%\">"; echo "<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=8 WIDTH=\"100%\">";
echo "<TR><TD BGCOLOR='#EEEECC' BACKGROUND=''><B>"; echo "<TR><TD BGCOLOR='#EEEECC' BACKGROUND=''><B>";
echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3 COLOR='#000000'>"; echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3 COLOR='#000000'>";
......
...@@ -40,8 +40,8 @@ function copie_locale($source, $mode='auto') { ...@@ -40,8 +40,8 @@ function copie_locale($source, $mode='auto') {
ecrire_fichier($local, $contenu); ecrire_fichier($local, $contenu);
// signaler au moteur de recherche qu'il peut reindexer ce doc // signaler au moteur de recherche qu'il peut reindexer ce doc
$a = spip_query("SELECT id_document FROM spip_documents WHERE fichier='".addslashes($source)."'"); $id_document = spip_fetch_array(spip_query("SELECT id_document FROM spip_documents WHERE fichier='".addslashes($source)."'"));
list($id_document) = spip_fetch_array($a); $id_document = $id_document['id_document'];
if ($id_document) { if ($id_document) {
include_spip('inc/indexation'); include_spip('inc/indexation');
marquer_indexer('document', $id_document); marquer_indexer('document', $id_document);
......
...@@ -157,14 +157,14 @@ function calculer_threads() { ...@@ -157,14 +157,14 @@ function calculer_threads() {
$discussion = "0"; $discussion = "0";
$precedent = 0; $precedent = 0;
$r = spip_query("SELECT fille.id_forum AS id, maman.id_thread AS thread FROM spip_forum AS fille, spip_forum AS maman WHERE fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread ORDER BY thread"); $r = spip_query("SELECT fille.id_forum AS id, maman.id_thread AS thread FROM spip_forum AS fille, spip_forum AS maman WHERE fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread ORDER BY thread");
while (list($id, $thread) = spip_fetch_array($r)) { while ($row = spip_fetch_array($r)) {
if ($thread == $precedent) if ($row['thread'] == $precedent)
$discussion .= ",$id"; $discussion .= "," . $row['id'];
else { else {
if ($precedent) if ($precedent)
spip_query("UPDATE spip_forum SET id_thread=$precedent WHERE id_forum IN ($discussion)"); spip_query("UPDATE spip_forum SET id_thread=$precedent WHERE id_forum IN ($discussion)");
$precedent = $thread; $precedent = $row['thread'];
$discussion = "$id"; $discussion = $row['id'];
} }
} }
spip_query("UPDATE spip_forum SET id_thread=$precedent WHERE id_forum IN ($discussion)"); spip_query("UPDATE spip_forum SET id_thread=$precedent WHERE id_forum IN ($discussion)");
......
...@@ -342,8 +342,8 @@ function import_tables($f, $tables, $gz=false) { ...@@ -342,8 +342,8 @@ function import_tables($f, $tables, $gz=false) {
include_spip('inc/meta'); include_spip('inc/meta');
lire_metas(); lire_metas();
$s = spip_query("SELECT UNIX_TIMESTAMP(maj) AS d FROM spip_meta WHERE nom='debut_restauration'"); $s = spip_fetch_array(spip_query("SELECT UNIX_TIMESTAMP(maj) AS d FROM spip_meta WHERE nom='debut_restauration'"));
list($my_date) = spip_fetch_array($s); $my_date = $s['d'];
if (!$my_date) { if (!$my_date) {
spip_log("importation: debut_restauration absent"); spip_log("importation: debut_restauration absent");
......
...@@ -123,13 +123,12 @@ function afficher_sites($titre_table, $requete) { ...@@ -123,13 +123,12 @@ function afficher_sites($titre_table, $requete) {
$vals[] = $s; $vals[] = $s;
//echo "</td>"; //echo "</td>";
//echo "<td class='arial1'>"; //echo "<td class='arial1'>";
$s = "";
if ($syndication == "oui" OR $syndication == "off" OR $syndication == "sus") { if ($syndication == "oui" OR $syndication == "off" OR $syndication == "sus") {
$result_art = spip_query("SELECT COUNT(*) FROM spip_syndic_articles WHERE id_syndic='$id_syndic'"); $total_art = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_syndic_articles WHERE id_syndic='$id_syndic'"));
list($total_art) = spip_fetch_array($result_art); $s = " " . $total_art['n'] . " " . _T('info_syndication_articles');
$s .= " $total_art "._T('info_syndication_articles');
} else { } else {
$s .= "&nbsp;"; $s = "&nbsp;";
} }
$vals[] = $s; $vals[] = $s;
//echo "</td>"; //echo "</td>";
...@@ -250,7 +249,7 @@ function afficher_syndic_articles($titre_table, $requete, $id = 0) { ...@@ -250,7 +249,7 @@ function afficher_syndic_articles($titre_table, $requete, $id = 0) {
// $my_sites cache les resultats des requetes sur les sites // $my_sites cache les resultats des requetes sur les sites
if (!$my_sites[$id_syndic]) if (!$my_sites[$id_syndic])
$my_sites[$id_syndic] = spip_fetch_array(spip_query("SELECT * FROM spip_syndic WHERE id_syndic=$id_syndic")); $my_sites[$id_syndic] = spip_fetch_array(spip_query("SELECT nom_site, moderation, miroir FROM spip_syndic WHERE id_syndic=$id_syndic"));
if (!$id) { if (!$id) {
$aff = $my_sites[$id_syndic]['nom_site']; $aff = $my_sites[$id_syndic]['nom_site'];
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter